Есть новости привязанные к разным страницам.
На главной показываются все новости сплошняком, а на конкретных страницах показываются новости привязанные к соответствующей странице.
Хочется сначала показывать по 5 последних новостей, а дальше подгружать по нажатию "Смотреть больше".
Хочется модифицировать имеющийся код, чтобы можно было передавать id страницы, для которой нужно подгрузить новости (а если он не задан, то показываются все).
основной скрипт
<script type="text/javascript" src="/js/jquery-1.11.2.min.js"></script>
<div id="content">
<?php
require_once $_SERVER['DOCUMENT_ROOT']."/config.php";
$Config['NewsOnPage']=5;
$lSQL2 =" SELECT id, daten as date_sort, DATE_FORMAT(daten, '%d.%m.%Y') AS daten, name, visible ";
$lSQL2.=" FROM proekt_news WHERE visible='Y' ";
$lSQL2.=" ORDER BY date_sort Desc, id Desc LIMIT {$Config['NewsOnPage']} ";
$lRes2=mysql_query($lSQL2) or die("Не удается выполнить запрос.");
$lRows2=mysql_num_rows($lRes2);
while ($lRow2=mysql_fetch_array($lRes2)) {
$lRow2["name"]=stripslashes($lRow2["name"]);
echo "<div class='h3'><h3>{$lRow2["name"]}</h3></div>";
}
?>
</div>
<div class='text-center' id='load'><a href='#' class='btn' onclick='return false;'>Смотреть больше</a></div>
<!-- ТУТ НАДО передавать id страницы (idpage), для которой нужно подгрузить новости (а если он не задан, то показываются все) -->
<div><br />А тут ниже идет просто какой-то текст: бла-бла-бла</div>
<script type="text/javascript">
$(document).ready(function(){
$("#imgLoad").hide(); //Скрываем прелоадер
});
var num = 5; //чтобы знать с какой записи вытаскивать данные
$(function() {
//$("#load div").click(function(){ //Выполняем если по кнопке кликнули
$("#load a").click(function(){ //Выполняем если по кнопке кликнули
$("#imgLoad").show(); //Показываем прелоадер
$.ajax({
url: "ajax.php",
type: "GET",
data: {"num": num},
//<!-- ТУТ НАДО передавать id страницы (idpage), для которой нужно подгрузить новости (а если он не задан, то показываются все) -->
cache: false,
success: function(response){
if (response == 0) { // смотрим ответ от сервера и выполняем соответствующее действие
//alert("Больше нет записей");
$("#imgLoad").hide();
$("#load").hide();
}
else {
$("#content").append(response);
num = num + 5;
$("#imgLoad").hide();
}
}
});
});
});
</script>
и ajax.php
<?php
header("Content-type: text/html; charset=windows-1251");
require_once $_SERVER['DOCUMENT_ROOT']."/config.php";
$Config['NewsOnPage']=5;
if (isset($_GET['num'])) {
$num = $_GET['num'];
//Вытаскиваем из таблицы $Config['NewsOnPage'] новостей начиная с $num
$query = "SELECT id, daten as date_sort, DATE_FORMAT(daten, '%d.%m.%Y') AS daten, name, visible ";
$query.= "FROM proekt_news WHERE visible='Y' ";
if (isset($_GET['idpage']) and !empty($_GET['idpage']))
$query.= " and pageid={$_GET['idpage']} ";
$query.= " ORDER BY date_sort Desc, id Desc LIMIT {$num}, {$Config['NewsOnPage']} "
$result = mysql_query($query);
if (mysql_num_rows($result) > 0) {
while ($lRow2 = mysql_fetch_array($result)) {
$num++;
echo "<div class='h3'><h3>{$lRow2["name"]}</h3></div>";
}
//sleep(1); //Сделана задержка в 1 секунду чтобы можно проследить выполнение запроса
}
else {
echo 0; //Если записи закончились
}
}
?>